Аннотация
Управление многоуровневым хранилищем с помощью системы управления локальным хранилищем Stratis
Сжатие и дедупликация данных на запоминающих устройствах с помощью VDO для оптимизации использования хранилища
Управление многоуровневым хранилищем с помощью Stratis (и упражнение)
Сжатие и дедупликация хранилища с помощью VDO (и упражнение)
Реализация расширенных функций хранилища
После завершения этого раздела вы сможете управлять многоуровневым хранилищем с помощью системы управления локальным хранилищем Stratis.
Stratis ― это новое решение по управлению локальным хранилищем для Linux. Stratis упрощает начальную настройку, изменение конфигурации и использование расширенных функций хранилища.
Служба Stratis доступна в виде бета-версии. Сведения о поддержке компанией Red Hat бета-версий функций см. в документе Поддержка бета-версий.
Red Hat приветствует отзывы пользователей, развертывающих Stratis.
Stratis ― это служба, которая управляет пулами физических запоминающих устройств, прозрачно создает тома для создаваемых файловых систем и управляет ими.
В Stratis файловые системы создаются из общих пулов дисковых устройств с использованием метода, известного как динамическое выделение ресурсов (или тонкая подготовка). Вместо немедленного выделения пространства физического хранилища под создаваемую файловую систему служба Stratis динамически выделяет пространство из пула по мере того, как в файловой системе сохраняются новые данные. Поэтому размер файловой системы может быть указан как 1 ТиБ, но в реальности ей может быть выделено 100 ГиБ пространства хранилища из пула.
Вы можете создать несколько пулов из разных запоминающих устройств. Из каждого пула можно создать одну или несколько файловых систем. В настоящее время можно создать до 224 файловых систем на один пул.
Компоненты, составляющие файловую систему под управлением Stratis, созданы из стандартных компонентов Linux. Решение Stratis основано на подсистеме Device Mapper, которая также используется для реализации LVM, а файловые системы, которыми управляет Stratis, форматируются под XFS.
Приведенная ниже диаграмма иллюстрирует размещение элементов в системе управления хранилищем Stratis. Блочные запоминающие устройства, такие как жесткие диски и SSD-накопители, назначаются в пулы, и каждое из них выделяет для пула часть физического хранилища. Файловые системы создаются из пулов, а физическое хранилище сопоставляется с каждой файловой системой по мере необходимости.
Для управления файловыми системами с помощью системы Stratis необходимо установить пакеты stratis-cli и stratisd. Пакет stratis-cli предоставляет команду stratis, которая отправляет запросы на изменение конфигурации системному демону stratisd. Пакет stratisd предоставляет службу stratisd, которая обрабатывает запросы на изменение конфигурации, а также контролирует блочные устройства, пулы и файловые системы, которые использует Stratis.
stratisd
Файловые системы, созданные Stratis, должны настраиваться только с помощью утилит и команд Stratis.
Stratis использует сохраненные метаданные для идентификации управляемых пулов, томов и файловых систем. Настройка файловых систем Stratis вручную с использованием команд, не связанных со Stratis, может привести к потере метаданных и помешать Stratis идентифицировать созданные файловые системы.
Для использования Stratis необходимо установить программное обеспечение и запустить службу stratisd.
С помощью команды yum install установите пакеты stratis-cli и stratisd.
[root@host ~]# yum install stratis-cli stratisd ...output omitted... Is this ok [y/N]: y ...output omitted... Complete!
[root@host ~]#
yum install stratis-cli stratisd
Is this ok [y/N]:
y
С помощью команды systemctl активируйте службу stratisd.
[root@host ~]# systemctl enable --now stratisd
systemctl enable --now stratisd
Далее приведены распространенные операции, выполняемые с помощью системы управления хранилищем Stratis.
Используйте команду stratis pool create для создания пулов из одного или нескольких блочных устройств.
[root@host ~]# stratis pool create pool1 /dev/vdb
stratis pool create pool1 /dev/vdb
pool1
/dev/vdb
Каждый пул является подкаталогом каталога /stratis.
/stratis
Используйте команду stratis pool list для просмотра списка доступных пулов.
[root@host ~]# stratis pool list Name Total Physical Size Total Physical Used pool1 5 GiB 52 MiB
stratis pool list
Команда stratis pool list очень важна, так как она показывает, сколько места используется (и, следовательно, сколько места доступно) в пулах.
Если в пуле не хватает места, новые данные, записываемые в файловые системы, принадлежащие к этому пулу, будут потеряны.
Используйте команду stratis pool add-data для добавления дополнительных блочных устройств в пул.
[root@host ~]# stratis pool add-data pool1 /dev/vdc
stratis pool add-data pool1 /dev/vdc
/dev/vdc
Используйте команду stratis blockdev list для просмотра блочных устройств в пуле.
[root@host ~]# stratis blockdev list pool1 Pool Name Device Node Physical Size State Tier pool1 /dev/vdb 5 GiB In-use Data pool1 /dev/vdc 5 GiB In-use Data
stratis blockdev list pool1
Используйте команду stratis filesystem create для создания файловой системы из пула.
[root@host ~]# stratis filesystem create pool1 fs1
stratis filesystem create pool1 fs1
fs1
Ссылки на файловые системы Stratis находятся в каталоге /stratis/pool1.
/stratis/pool1
Используйте команду stratis filesystem list для просмотра списка доступных файловых систем.
[root@host ~]# stratis filesystem list Pool Name Name Used Created Device UUID pool1 fs1 546 MiB Sep 23 2020 13:11 /stratis/pool1/fs1 31b9363badd...
stratis filesystem list
Команда df показывает, что все новые файловые системы XFS под управлением Stratis, имеют размер 1 ТиБ независимо от того, какой в реальности объем физического хранилища выделен файловой системой. Поскольку ресурсы для файловой системы выделяются динамически, в пуле может быть недостаточно места для всей файловой системы, особенно если другие файловые системы в пуле используют все доступное хранилище.
df
Таким образом, свободного места в пуле хранилищ может уже не быть, но команда df все равно покажет, что в файловой системе есть свободное место. Если в пуле нет ресурсов хранилища для файловой системы, дальнейшие попытки записи в эту файловую систему могут оказаться неудачными и привести к потере данных.
Используйте команду stratis pool list для отслеживания свободных ресурсов хранилища, доступных в пулах Stratis.
С помощью команды stratis filesystem snapshot можно создать моментальный снимок файловой системы под управлением Stratis. Моментальные снимки не зависят от исходной файловой системы.
[root@host ~]# stratis filesystem snapshot pool1 fs1 snapshot1
stratis filesystem snapshot pool1 fs1 snapshot1
snapshot1
Чтобы файловые системы Stratis монтировались на постоянной основе, укажите в файле /etc/fstab сведения о соответствующей файловой системе. Следующая команда отображает UUID файловой системы, который необходимо указать в файле /etc/fstab для идентификации этой файловой системы.
/etc/fstab
[root@host ~]# lsblk --output=UUID /stratis/pool1/fs1 UUID 31b9363b-add8-4b46-a4bf-c199cd478c55
lsblk --output=UUID /stratis/pool1/fs1
Ниже приведен пример записи в файле /etc/fstab, которая обеспечивает монтирование файловой системы Stratis на постоянной основе. Этот пример записи представляет собой одну длинную строку в файле.
UUID=31b9363b-add8-4b46-a4bf-c199cd478c55 /dir1 xfs defaults,x-systemd.requires=stratisd.service 0 0
Опция x-systemd.requires=stratisd.service приостанавливает монтирование файловой системы во время начальной загрузки системы, пока systemd не запустит службу stratisd.service.
x-systemd.requires=stratisd.service
systemd
stratisd.service
Если вы не добавите опцию монтирования x-systemd.requires=stratisd.service в файл /etc/fstab для каждой файловой системы Stratis, машина не сможет корректно запуститься и загрузится в цель emergency.target при следующей перезагрузке.
emergency.target
Дополнительные сведения см. в главе Managing layered local storage with Stratis руководства Red Hat Enterprise Linux 8 Configuring and Managing File Systems: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_file_systems/
Хранилище Stratis
Какие знания о ZFS, Btrfs и LVM легли в основу Stratis